.TH std::vector::clear 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::vector::clear \- std::vector::clear

.SH Synopsis
   void clear();  (noexcept since C++11)
                  (constexpr since C++20)

   Erases all elements from the container. After this call, size() returns zero.

   Invalidates any references, pointers, and iterators referring to contained elements.
   Any past-the-end iterators are also invalidated.

   Leaves the capacity() of the vector unchanged (Note: the standard's restriction on
   the changes to capacity is in the specification of reserve(), see SO).

.SH Parameters

   \fI(none)\fP

.SH Return value

   \fI(none)\fP

.SH Complexity

   Linear in the size of the container, i.e., the number of elements.

.SH Example


// Run this code

 #include <iostream>
 #include <string_view>
 #include <vector>

 void print_info(std::string_view rem, const std::vector<int>& v)
 {
     std::cout << rem << "{ ";
     for (const auto& value : v)
         std::cout << value << ' ';
     std::cout << "}\\n";
     std::cout << "Size=" << v.size() << ", Capacity=" << v.capacity() << '\\n';
 }

 int main()
 {
     std::vector<int> container{1, 2, 3};
     print_info("Before clear: ", container);
     container.clear();
     print_info("After clear: ", container);
 }

.SH Output:

 Before clear: { 1 2 3 }
 Size=3, Capacity=3
 After clear: { }
 Size=0, Capacity=3

  Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to          Behavior as published              Correct behavior
   LWG 2231 C++11      complexity guarantee was mistakenly     complexity reaffirmed as
                       omitted in C++11                        linear

.SH See also

   erase erases elements
         \fI(public member function)\fP
